/******************************************************************************
** 公司名称：天津柯迪斯科技有限公司
** 版权信息：
** 文件名称： bsp_LCD.h
** 模块名称： 数码管初始化模块
** 版 本 号： V1.0
** 作    者： ZRT
** 
** 修改记录： 版本     修改人      时间         修改内容
**
******************************************************************************/
#ifndef __BSP_LCD_H_
#define __BSP_LCD_H_

/******************************************************************************
* 头文件
******************************************************************************/
#include "main.h"
#include "bsp.h"
/******************************************************************************
* 宏定义                           
******************************************************************************/

#define SEG_A_Pin 		    GPIO_PIN_7
#define SEG_A_GPIO_Port 	GPIOC
#define SEG_B_Pin 		    GPIO_PIN_10
#define SEG_B_GPIO_Port 	GPIOA
#define SEG_C_Pin 		    GPIO_PIN_13
#define SEG_C_GPIO_Port 	GPIOB
#define SEG_D_Pin 		    GPIO_PIN_8
#define SEG_D_GPIO_Port 	GPIOA
#define SEG_E_Pin 		    GPIO_PIN_14
#define SEG_E_GPIO_Port 	GPIOB
#define SEG_F_Pin 		    GPIO_PIN_6
#define SEG_F_GPIO_Port 	GPIOC
#define SEG_G_Pin 		    GPIO_PIN_9
#define SEG_G_GPIO_Port 	GPIOA
#define SEG_DP_Pin 		    GPIO_PIN_15
#define SEG_DP_GPIO_Port 	GPIOB
#define SEG_A1_Pin 		    GPIO_PIN_12
#define SEG_A1_GPIO_Port 	GPIOA
#define SEG_A2_Pin 		    GPIO_PIN_11
#define SEG_A2_GPIO_Port 	GPIOA
 
#define SEG_A_ON            HAL_GPIO_WritePin(SEG_A_GPIO_Port, SEG_A_Pin, GPIO_PIN_RESET);   
#define SEG_A_OFF           HAL_GPIO_WritePin(SEG_A_GPIO_Port, SEG_A_Pin, GPIO_PIN_SET);

#define SEG_B_ON            HAL_GPIO_WritePin(SEG_B_GPIO_Port, SEG_B_Pin, GPIO_PIN_RESET);   
#define SEG_B_OFF           HAL_GPIO_WritePin(SEG_B_GPIO_Port, SEG_B_Pin, GPIO_PIN_SET);

#define SEG_C_ON            HAL_GPIO_WritePin(SEG_C_GPIO_Port, SEG_C_Pin, GPIO_PIN_RESET);   
#define SEG_C_OFF           HAL_GPIO_WritePin(SEG_C_GPIO_Port, SEG_C_Pin, GPIO_PIN_SET);

#define SEG_D_ON            HAL_GPIO_WritePin(SEG_D_GPIO_Port, SEG_D_Pin, GPIO_PIN_RESET);   
#define SEG_D_OFF           HAL_GPIO_WritePin(SEG_D_GPIO_Port, SEG_D_Pin, GPIO_PIN_SET);

#define SEG_E_ON            HAL_GPIO_WritePin(SEG_E_GPIO_Port, SEG_E_Pin, GPIO_PIN_RESET);   
#define SEG_E_OFF           HAL_GPIO_WritePin(SEG_E_GPIO_Port, SEG_E_Pin, GPIO_PIN_SET);

#define SEG_F_ON            HAL_GPIO_WritePin(SEG_F_GPIO_Port, SEG_F_Pin, GPIO_PIN_RESET);   
#define SEG_F_OFF           HAL_GPIO_WritePin(SEG_F_GPIO_Port, SEG_F_Pin, GPIO_PIN_SET);

#define SEG_G_ON            HAL_GPIO_WritePin(SEG_G_GPIO_Port, SEG_G_Pin, GPIO_PIN_RESET);   
#define SEG_G_OFF           HAL_GPIO_WritePin(SEG_G_GPIO_Port, SEG_G_Pin, GPIO_PIN_SET);

#define SEG_DP_ON            HAL_GPIO_WritePin(SEG_DP_GPIO_Port, SEG_DP_Pin, GPIO_PIN_RESET);   
#define SEG_DP_OFF           HAL_GPIO_WritePin(SEG_DP_GPIO_Port, SEG_DP_Pin, GPIO_PIN_SET);

#define SEG_A1_ON            HAL_GPIO_WritePin(SEG_A1_GPIO_Port, SEG_A1_Pin, GPIO_PIN_RESET);   
#define SEG_A1_OFF           HAL_GPIO_WritePin(SEG_A1_GPIO_Port, SEG_A1_Pin, GPIO_PIN_SET);

#define SEG_A2_ON            HAL_GPIO_WritePin(SEG_A2_GPIO_Port, SEG_A2_Pin, GPIO_PIN_RESET);   
#define SEG_A2_OFF           HAL_GPIO_WritePin(SEG_A2_GPIO_Port, SEG_A2_Pin, GPIO_PIN_SET);



/******************************************************************************
* 类型定义                                      
******************************************************************************/
typedef enum
{
	SEG_N1 = 0,
	SEG_N2 ,
 
}enSEG_Nx_TYPE;



#define ON  1
#define OFF 0

#define BIT0 0
#define BIT1 1
#define BIT2 2
#define BIT3 3
#define BIT4 4
#define BIT5 5
#define BIT6 6
#define BIT7 7

#define set_bit(val,bitn)   val |=(1<<bitn)
#define clr_bit(val,bitn)   val &=~(1<<bitn)
#define get_bit(val,bitn)   val &(1<<(bitn))
 



/******************************************************************************
* 全局变量声明 
******************************************************************************/
 
/******************************************************************************
* 函数声明 
******************************************************************************/
void vBsp_LCD_Init(void);
void vBsp_LCD_DispNum(uint16_t Number,uint8_t OnOff,uint8_t ucRefreshBitFlg);
void vBsp_LCD_DispStringAtSpeed(char *pString,uint8_t OnOff,uint8_t ucRefreshBitFlg);
void vBsp_SEG_A1(uint8_t ucState);
void vBsp_SEG_A2(uint8_t ucState);

#endif
